jQuery.validator.addMethod("isTaxNoNormal", function(value, element) {
		var taxNoPatrn = /^[0-9a-zA-Z]+$/
		return this.optional(element) || taxNoPatrn.test(value);
	}, "只能是数字或字母");

jQuery.validator.addMethod("isTaxNo", function(value, element) {
	var taxNoPatrn = /^[0-9a-zA-Z]+$/
	return this.optional(element) || taxNoPatrn.test(value);
}, "只能是数字或字母");

jQuery.validator.addMethod("isNum", function(value, element) {
	var isNumPatrn = /^(-)?\d+(\.\d+)?$/
	return this.optional(element) || isNumPatrn.test(value);
}, "只能是数字");

$(function(){
	
	//增值税发票开票选择
	selectpicker({
		id : 'companyNameSelect', // select的id
		url : rootPath + "/pc/my/companyInvoice/listCompanyInvoice", // 请求数据的远程地址
		param : {}, // 过滤参数
		valueField : 'id',
		textField : 'companyName',
		loadSuccess : function(){
			if($("#tmp_company_name").val() != ''){
				// 显示默认开票信息
				$("#companyName").val($("#tmp_company_name").val());
				$("#taxNo").val($("#tmp_tax_no").val());
				$("#registeAddress").val($("#tmp_registe_address").val());
				$("#registePhone").val($("#tmp_registe_phone").val());
				$("#openBankName").val($("#tmp_open_bank_name").val());
				$("#bankAccount").val($("#tmp_bank_account").val());
			}else{
				$("#companyNameSelect").prop('selectedIndex', 0);
				$("#companyNameSelect").change();
			}
		}
	});
	$("#companyNameSelect").change(function(){
		var id = $(this).val();
		$.ajax({
			type: 'POST',
			url: rootPath + "/pc/my/companyInvoice/getCompanyInvoiceById",
			data:{invoiceId: id},
			dataType: 'json',
			success: function(data){
				if (data.resultCode == "1") {
					$("#companyName").val(data.companyInvoice.companyName);
					$("#taxNo").val(data.companyInvoice.taxNo);
					$("#registeAddress").val(data.companyInvoice.registeAddress);
					$("#registePhone").val(data.companyInvoice.registePhone);
					$("#openBankName").val(data.companyInvoice.openBankName);
					$("#bankAccount").val(data.companyInvoice.bankAccount);
				}
			}
		})
		
	})
	
	// 保存收货地址
	$("#btn_save_delivery_address").click(function(){
		var id = $("#id").val();
		if (id != "" && id != null) {
			//该地址是否是免费地址
			$.ajax({
				type: 'POST',
				url: rootPath + "/deliveryAddress/isFreeExpressAddress",
				data:{addressId: id},
				dataType: 'json',
				success: function(data){
					if (data.resultCode == "1") {
						layer.confirm("该地址为免运费地址，修改后需要重新申请，是否修改？", {
							title: '删除',
							btn: ['确定','取消'], //按钮
							skin: 'del-class' //样式类名
						}, function(index){
							saveOrUpdateAddress();
						});
					} else {
						saveOrUpdateAddress();
					}
				}
			});
		} else {
			//新增地址
			saveOrUpdateAddress();
		}
	});

	// 折扣积分
	$("#customer_point").click(function(){
		if($(this).attr("class") == "current"){
			$(this).removeClass("current");
			$("#p_customer_point").text("0.00");

			var real_pay_money = parseFloat($("#real_pay_money").text().replace("￥",""));
			$("#real_pay_money").text("￥"+numberRand2(real_pay_money+parseFloat($(this).find("span").text())));

		}else{
			$(this).addClass("current");
			$("#p_customer_point").text($(this).find("span").text());

			var real_pay_money = parseFloat($("#real_pay_money").text().replace("￥",""));
			$("#real_pay_money").text("￥"+numberRand2(real_pay_money-parseFloat($(this).find("span").text())));
		}
	});

	// 客户优惠券
	$("li[id='customer_coupon']").each(function(){
		$(this).click(function(){
			
			var titleArr = $(this).attr("title").split('#');
			var couponId = titleArr[0];
			var userCouponId = titleArr[1];
			var couponAmount = titleArr[2];
			var conditionAmount = titleArr[3];
			var isLimit = titleArr[4];
			// 如果不是上不封顶的，就说明是单选
			if(isLimit == 0) {
				//已选过
				if($(this).hasClass("current")) {
					$(this).removeClass("current");
				} else {
					// 删除其他所有被选中的
					$(".couponUL li").removeClass("current");
					$(this).addClass("current");
				}
			} else {
				// 上不封顶
				// 所有单选的优惠券都取消选中
				$(".couponUL .limit_0").removeClass("current");
				
				// 如果不是同一种优惠券，也不可使用
				var selectLiArr = $(".couponUL li");
				if(selectLiArr && selectLiArr.length > 0) {
					for(var i = 0; i < selectLiArr.length; i++) {
						var couponIdLi = selectLiArr[i].value;
						if(couponId != couponIdLi) {
							$(".couponUL .coupon_" + couponIdLi).removeClass("current");
						}
					}
				}
				
				if($(this).hasClass("current")) {
					$(this).removeClass("current");
				} else {
					$(this).addClass("current");
				}
			}
			
			
			var selectLiArr = $(".couponUL li.current");
			if(selectLiArr && selectLiArr.length > 0) {
				// 商品总金额
				var totalProductPrice = $("#totalProductPrice").text();
				// 优惠券条件金额
				var totalCouponConditionAmount = 0;
				// 优惠券面值
				var totalCouponAmount = 0;
				for(var i = 0; i < selectLiArr.length; i++) {
					var tempArr = selectLiArr[i].title.split('#');
					var couponIdLi = tempArr[0];
					var userCouponIdLi = tempArr[1];
					var couponAmountLi = tempArr[2];
					var conditionAmountLi = tempArr[3];
					var isLimitLi = tempArr[4];
					
					totalCouponAmount += parseFloat(couponAmountLi);
					totalCouponConditionAmount += parseFloat(conditionAmountLi);
				}
				//如果选中优惠券的总条件金额大于商品总金额，那么最后选中的优惠券则需要取消选中
				if(totalCouponConditionAmount > totalProductPrice) {
					// 您选择的优惠券使用条件不足
					layer.msg('您选择的优惠券已超出该订单可优惠金额！', {
						time : 3000
					});
//					layer.msg('商品总金额：' + totalProductPrice + '元<br>但是选择的优惠券条件金额：' + totalCouponConditionAmount + '元！', {
//						time : 3000
//					});
					//取消选中最后一个
					$(this).removeClass("current");
				} else {
					var beforeCouponMoney =  $("#p_customer_coupon").text();
					$("#p_customer_coupon").text(totalCouponAmount);
					var real_pay_money = parseFloat($("#real_pay_money").text().replace("￥",""));
					$("#real_pay_money").text("￥"+numberRand2(real_pay_money + parseFloat(beforeCouponMoney) - parseFloat(totalCouponAmount)));
				}
			} else {
				// 之前已选中的值
				var beforeCouponMoney = $("#p_customer_coupon").text();
				$("#p_customer_coupon").text("0.00");
				var real_pay_money = parseFloat($("#real_pay_money").text().replace("￥", ""));
				$("#real_pay_money").text("￥" + numberRand2(real_pay_money + parseFloat(beforeCouponMoney)));
			}
			
			/**
			if($(this).attr("class") == "current"){
				$(this).removeClass("current");
				// 之前已选中的值
				var beforeCouponMoney =  $("#p_customer_coupon").text();
				$("#p_customer_coupon").text("0.00");
				var real_pay_money = parseFloat($("#real_pay_money").text().replace("￥",""));
				$("#real_pay_money").text("￥"+numberRand2(real_pay_money + parseFloat(beforeCouponMoney)));
			}else{
				$("li[id='customer_coupon']").removeClass("current");
				$(this).addClass("current");
				var nowCouponMoney = $(this).find("#user_coupon_money").val();

				// 之前已选中的值
				var beforeCouponMoney =  $("#p_customer_coupon").text();
				$("#p_customer_coupon").text(nowCouponMoney);

				var real_pay_money = parseFloat($("#real_pay_money").text().replace("￥",""));
				$("#real_pay_money").text("￥"+numberRand2(real_pay_money + parseFloat(beforeCouponMoney) - parseFloat(nowCouponMoney)));
			}
			*/
		});
	});
	
	
	$("#btn_submit_order").click(function(){
		// 提交订单
		var itemIds = [];
		$("input[name='itemIds']").each(function(i,item){
			itemIds.push($(this).val());
		});
		// 配送地址id
		var deliveryAddressId = $("label[name='delivery_address'].checked").attr("delivery_address_id");
		if(deliveryAddressId == null || deliveryAddressId == ""){
			layer.msg('请选择或新增收到地址',{time:2000});
			return false;
		}
		// 支付模式
		var payModel = $("label[name='pay_model'].checked").attr("pay_model");
		// 配送方式
		var deliveryModel = $("label[name='delivery_model'].checked").attr("model_value");
		var deliveryIntro = $("#delivery_intro").val();
		if(deliveryModel == '4' && $.trim(deliveryIntro).length == 0){
			layer.msg('请输入配送要求',{time:2000});
			return false;
		}
		// 物流费支付方式
		var deliveryFeePayModel = delivery_pay_after_flag == 'true' ? '02' : '01';
		var invoiceType = $("div.fp_nav").find("li.current").attr("type");
		var invoiceTitle = $("#invoiceTitle").val();
		var taxNo = $("#taxNo").val();
		var companyName = $("#companyName").val();
		if(invoiceType == '02'){
			companyName = invoiceTitle;
			taxNo = $("#taxNoNormal").val();
		}
		var registeAddress = $("#registeAddress").val();
		var registePhone = $("#registePhone").val();
		var openBankName = $("#openBankName").val();
		var bankAccount = $("#bankAccount").val();
		var intro = $("#intro").val();
		
		
		var url = rootPath + "/pc/order/commitOrder";
		var couponIds = [];
		var couponMoney = 0;
		$("li[id='customer_coupon'].current").each(function(){
			couponIds.push($(this).find("#user_coupon_id").val());
			couponMoney += parseFloat($(this).find("#user_coupon_money").val());
		});
		$.ajax({
			type: 'POST',
			url: url,
			async: true,
			data: {
				deliveryAddressId: deliveryAddressId,
				shoppingcartIds:itemIds.join(','),
				payModel:payModel,
				deliveryType:deliveryModel,
				deliveryFeePayType:deliveryFeePayModel,
				points: $("#p_customer_point").text(),
				couponMoney : couponMoney,
				couponIds : couponIds.join(','),
				invoiceType :invoiceType,
				companyName : companyName,
				taxNo : taxNo,
				registeAddress : registeAddress,
				registePhone : registePhone,
				openBankName : openBankName,
				bankAccount : bankAccount,
				intro : intro,
				deliveryIntro : deliveryIntro
			},
			dataType: 'json',
			success: function(json) {
				if(json.resultCode == '1'){
					if(json.redirectAdjust == '2'){
						var url = rootPath + "/pc/order/toOrderAdjustPage";
						var form = $('<form></form>');  
						form.attr('action', url);  
						form.attr('method', 'post');
						form.attr('target', '_self');
						form.append('<input type="hidden" name="orderCode" value="'+json.orderCode+'"/>');
						form.append('<input type="hidden" name="deliveryAddress" value="'+json.deliveryAddress+'"/>');
						form.append('<input type="hidden" name="receiverName" value="'+json.receiverName+'"/>');
						form.append('<input type="hidden" name="receiverMobile" value="'+json.receiverMobile+'"/>');
						form.append('<input type="hidden" name="realPayMoney" value="'+json.realPayMoney+'"/>');
						form.appendTo("body");
						form.submit();
					}else{
						if(json.payModel =="01"){
							var url = rootPath + "/pc/order/toOrderPay";
							var form = $('<form></form>');  
							form.attr('action', url);  
							form.attr('method', 'post');
							form.attr('target', '_self');
							form.append('<input type="hidden" name="orderCode" value="'+json.orderCode+'"/>');
							form.append('<input type="hidden" name="deliveryAddress" value="'+json.deliveryAddress+'"/>');
							form.append('<input type="hidden" name="receiverName" value="'+json.receiverName+'"/>');
							form.append('<input type="hidden" name="receiverMobile" value="'+json.receiverMobile+'"/>');
							form.append('<input type="hidden" name="realPayMoney" value="'+json.realPayMoney+'"/>');
							form.appendTo("body");
							form.submit();
						}else{
							var url = rootPath + "/pc/order/toUploadOrderContract";
							var form = $('<form></form>');  
							form.attr('action', url);  
							form.attr('method', 'post');
							form.attr('target', '_self');
							form.append('<input type="hidden" name="orderCode" value="'+json.orderCode+'"/>');
							form.appendTo("body");
							form.submit();
						}
					}
				}
			},
			error: function(){
				layer.msg('订单提交失败,请稍后再试',{time:2000});
			}
		})
	});


	function bindDeliveryAddressEvent(){
		// 更多收货地址 折叠
		$('.addmore_address p a').click(function(){
			$(this).parent().parent().toggleClass('current');
			$(this).parent().parent().parent().find('.address_list').toggleClass('current')
		});

		// 收货地址列表选择、操作默认
		$('.address_list ul li label').click(function(){
			if($(this).hasClass('checked')){
				$(this).addClass('checked');$(this).parent().find('input').attr('checked','checked');
			}else{
				$(this).addClass('checked');
				$(this).parent().siblings().find('label').removeClass('checked');
				$("#delivery_to_address").html("寄送至："+$(this).closest("li").find("h3").text()+"<span></span>收货人："+$(this).closest("li").find("h2").text()+"&nbsp;"+$(this).closest("li").find("h4").text());
			}
			
			// 重新计算运费
			cacluateDeliveryFee();
		});
	}

	bindDeliveryAddressEvent();

	// 新增收货地址	
	$('#addaddressbtn,.a_close').click(function(){
		$("#id").val('');
		$("#provinceCode").val('');
		$("#provinceName").val('');
		$("#cityCode").val('');
		$("#cityName").val('');
		$("#areaCode").val('');
		$("#areaName").val('');
		$("#streetCode").val('');
		$("#streetName").val('');
		$("#receiver_name").val('');
		$("#address").val('');
		$("#mobile").val('');
		$("#post_code").val('');

		initAreaCombo(null, null, null, null);
		$('#add_shr_info').toggle();
	});

	// 弹出修改发票窗口
	$('#modfpbtn,#fp_box .hd span a').click(function(){
		$('#fp_box').toggle();
	});

	$("#normal_invoice_form").validate({
		rules : {
			invoiceTitle : {
				required : true
			},
			taxNoNormal : {
				required : true,
				minlength : 3,
				maxlength : 20,
				isTaxNoNormal : true
			}
		},
		messages : {
			invoiceTitle : {
				required : '请填写发票抬头'
			},
			taxNoNormal : {
				required : '请填写请输入纳税人识别码',
				minlength : '纳税人识别码至少3个字符',
				maxlength : '纳税人识别码至少20个字符'
			}
		},
		errorPlacement : function(error, element) { // 错误信息位置设置方法
			var tagName = $(element).is("select");
			if(!tagName) {
				error.insertAfter(element);
			}else {
				error.insertAfter(element.parent().next());
			}
		},
		submitHandler : function(form) {
			$("#invoide_type_name").text($(".fp_nav  ul li.current").text());
			$('#fp_box').toggle();
			return false;
		}
	});

	// 普通发票保存
	$("#btn_save_normal_invoice").click(function(){
		$("#normal_invoice_form").submit();
		return false;
	});

	$("#btn_cancel_normal_invoice").click(function() {
		$('#fp_box').toggle();
	});

	 jQuery.validator.addMethod("isMobile", function(value, element) {
	        var length = value.length;
	        var mobile = /^1[34578]\d{9}$/;/*/^1(3|4|5|7|8)\d{9}$/*/
	        return this.optional(element) || (length == 11 && mobile.test(value));
	    }, "请正确填写您的手机号码");
	// 增值赋发票
	$("#addedvalue_invoice_form").validate({
		rules : {
			companyName : {
				required : true,
				maxlength : 100
			},
			taxNo : {
				required : true,
				minlength : 3,
				maxlength : 20,
				isTaxNo: true
			},
			registeAddress : {
				required : true,
				minlength : 3,
				maxlength : 100
			},
			registePhone : {
				required : true,
				minlength : 3,
				maxlength : 20
			},
			openBankName : {
				required : true,
				minlength : 3,
				maxlength : 20
			},
			bankAccount : {
				required : true,
				minlength : 3,
				maxlength : 30,
				isNum : true
			}
		},
		messages : {
			companyName : {
				required : '请填写单位名称',
				maxlength : '单位名称最多100个字符'
			},
			taxNo : {
				required : '请填写请输入纳税人识别码',
				minlength : '纳税人识别码至少3个字符',
				maxlength : '纳税人识别码最多20个字符'
			},
			registeAddress : {
				required : '请填写注册地址',
				minlength : '注册地址至少3个字符',
				maxlength : '注册地址最多100个字符'
			},
			registePhone : {
				required : '请填写注册电话',
				minlength : '注册电话至少3个字符',
				maxlength : '注册电话最多20个字符'
			},
			openBankName : {
				required : '请填写开户银行',
				minlength : '开户银行至少3个字符',
				maxlength : '开户银行最多20个字符'
			},
			bankAccount : {
				required : '请填写银行账户',
				minlength : '银行账户至少3个字符',
				maxlength : '银行账户最多30个字符'
			}
		},
		errorPlacement : function(error, element) { // 错误信息位置设置方法
			var tagName = $(element).is("select");
			if(!tagName) {
				error.insertAfter(element);
			}else {
				error.insertAfter(element.parent().next());
			}
		},
		submitHandler : function(form) {
//			$("#invoide_type_name").text($(".fp_nav  ul li.current").text());
//			$('#fp_box').toggle();
//			return false;
			saveInvoice();
		}
	});
	
	$("#btn_save_addedvalue_invoice").click(function() {
		$("#addedvalue_invoice_form").submit();
	});

	/**
	 * 保存增值税发票
	 */
	function saveInvoice() {
		var companyName = $("#companyName").val();
		var taxNo = $("#taxNo").val();
		var registeAddress = $("#registeAddress").val();
		var registePhone = $("#registePhone").val();
		var openBankName = $("#openBankName").val();
		var bankAccount = $("#bankAccount").val();
		$.ajax({
			type : "post",
			url : rootPath + '/pc/my/companyInvoice/saveInvoiceAjax',
			data : {
				companyName : companyName,
				taxNo : taxNo,
				registeAddress : registeAddress,
				registePhone : registePhone,
				openBankName : openBankName,
				bankAccount : bankAccount
			},
			async : false,
			datatype : "json",
			success : function(json) {
				if (json.resultCode == '1') {
					layer.msg(json.resultMsg, {
						icon : 1,
						time : 2000
					});
					$("#invoide_type_name").text($(".fp_nav  ul li.current").text());
					$('#fp_box').toggle();
				} else {
					layer.msg(json.resultMsg, {
						icon : 2,
						time : 2000
					});
				}
			},
			error : function() {
				layer.msg('保存发票信息错误', {
					icon : 2,
					time : 2000
				});
			}
		});
	}
	
	$("#btn_cancel_addedvalue_invoice").click(function() {
		$('#fp_box').toggle();
	});

	// 优惠券
	jQuery('.yhq_list1 .hd3 ul li').click(
			function() {
				TabSelect(".yhq_list1 .hd3 ul li", "div.yhq_list3","current", jQuery(this))
			});

	jQuery('.yhq_list1 .hd3 ul li').eq(1).trigger("click");

	// 发票选项卡
	jQuery('.fp_nav  ul li:gt(0)').click(function() {
		TabSelect(".fp_nav  ul li", "div.fp_con","current", jQuery(this));
	});

	jQuery('.fp_nav  ul li:eq(0)').click(function() {
		$('.fp_nav  ul li').removeClass("current");
		$(this).addClass("current");
		$("div.fp_con:gt(0)").hide();
		$("div.fp_con:eq(0)").show();
		$("#invoide_type_name").text($(".fp_nav  ul li.current").text());
		$('#fp_box').toggle();
	});

	// 优惠券选项卡
	$('.yhq_more .hd2 h3').click(function() {
		$('#yhq_expand').toggle();
	});

	// 配送方式选择
	$('.psfs_part11 ul li label').click(function() {
		if ($(this).hasClass('checked')) {
			$(this).addClass('checked');
		} else {
			$(this).addClass('checked');
			$(this).parent().siblings().find('label').removeClass('checked');
		}
		// 配送方式
		var delivery_type = $("label[name='delivery_model'].checked").attr("model_value");
		if(delivery_type == '1' || delivery_type =='4'){
			// $("#lab_delivery_fee_pay_type_01").removeClass("checked");
			// $("#lab_delivery_fee_pay_type_02").removeClass("checked");
			$("#lab_delivery_fee_pay_type_02").iCheck('uncheck');
		}
		
		if(delivery_type == '4'){
			$("#con_delivery_intro").show();
		}else{
			$("#con_delivery_intro").hide();
		}
		// 重新计算运费
		cacluateDeliveryFee();
		
	});

	// 支付方式选择
	$('.zf_info1 ul li label').click(function() {
			if ($(this).hasClass('checked')) {
				$(this).addClass('checked');
			} else {
				$(this).addClass('checked');
				$(this).parent().siblings().find('label').removeClass('checked');
			}
			var pay_model = $("label[name='pay_model'].checked").attr("pay_model");
			if(pay_model == '02'){
				layer.tips('货到支付的订单将无法享受商品赠送积分', '#lab_pay_model_02', {
					  tips: [1, '#dd2726'],
					  time: 3000
				});
				// $("#lab_delivery_fee_pay_type_01").removeClass("checked");
				// $("#lab_delivery_fee_pay_type_02").addClass("checked");
				$("#lab_delivery_fee_pay_type_02").iCheck('check');
				$("#lab_delivery_fee_pay_type_02").iCheck('disable');
				
				// 重新计算运费
				cacluateDeliveryFee();
			}else{
				$("#lab_delivery_fee_pay_type_02").iCheck('enable');
			}
	});

	
	var delivery_pay_after_flag = false;
	// 初始化运费到付复选框
	$("#lab_delivery_fee_pay_type_02").iCheck({
		checkboxClass: 'icheckbox_square-green',
	    increaseArea: '20%'
	});
	
	// 勾选运费到付
	$('#lab_delivery_fee_pay_type_02').on('ifChecked', function(event){
		delivery_pay_after_flag = 'true';
		cacluateDeliveryFee();
	}); 
	
	// 取消运费到付
	$('#lab_delivery_fee_pay_type_02').on('ifUnchecked', function(event){
		delivery_pay_after_flag = 'false';
		var pay_model = $("label[name='pay_model'].checked").attr("pay_model");
		if(pay_model == '02'){
			layer.tips('货到付款的订单只能选择运费到付', '#lab_delivery_fee_pay_type_02', {
				  tips: [1, '#dd2726'],
				  time: 3000
			});
		}
		cacluateDeliveryFee();
	}); 
	
		
		/**
		 * 计算运费
		 */
		function cacluateDeliveryFee (){
			var normal_delivery_address_ids = $("#normal_delivery_address_ids").val();
			var express_delivery_address_ids = $("#express_delivery_address_ids").val();
			var normal_delivery_fee = $("#normal_delivery_fee").val();
			var express_delivery_fee = $("#express_delivery_fee").val();
			var other_delivery_fee = $("#other_delivery_fee").val();
			
			// 选中的收货地址
			var deliveryAddressId = $("label[name='delivery_address'].checked").attr("delivery_address_id");
			// alert("收化地址："+deliveryAddressId);
			
			var last_delivery_fee = 0;
			// 是否到付
			var pay_deliveried_flag = delivery_pay_after_flag ;
			// alert("是否到付:"+pay_deliveried_flag);
			if(pay_deliveried_flag && pay_deliveried_flag == 'true'){
				// 到付的话运费就是0
				last_delivery_fee = 0;
				// 修改订单运费
				changeOrderDeliveryFee(last_delivery_fee);
				return false;
			}
			// 选择的配送方式 1- 自提  2 普通  3 快递  4 其它
			var deliveryModel = $("label[name='delivery_model'].checked").attr("model_value");
			// alert("配置方式:"+deliveryModel);
			if(deliveryModel == 1){
				// 自提
				last_delivery_fee = 0;
			}else if(deliveryModel == 2){
				// 普通物流 
				if(normal_delivery_address_ids == "all"){
					// 普通物流全免
					last_delivery_fee = 0;
				}else{
					// 普通物流部分免
					if(isFee(deliveryAddressId, normal_delivery_address_ids )){
						last_delivery_fee = 0;
						// alert("普通部分免运费(0)："+last_delivery_fee);
					}else {
						last_delivery_fee = normal_delivery_fee;
						// alert("普通部分免运费："+last_delivery_fee);
					}
				}
			}else if(deliveryModel == 3){
				// 快递物流 
				if(express_delivery_address_ids == "all"){
					// 快递物流全免
					last_delivery_fee = 0;
				}else{
					// 快递物流部分免
					if(isFee(deliveryAddressId, express_delivery_address_ids )){
						last_delivery_fee == 0;
					}else {
						last_delivery_fee = express_delivery_fee;
					}
				}
			}else if(deliveryModel == 4){
				last_delivery_fee = other_delivery_fee;
				// alert("其它："+last_delivery_fee);
			}
			// alert("运费："+last_delivery_fee);
			// 如果运费为0
			// 隐藏运费到付选项
			if(last_delivery_fee  == 0){
				$("#li_delivery_fee_pay_type_02").hide();
			}else{
				$("#li_delivery_fee_pay_type_02").show();
			}
			// 运费变动重新计算订单价格
			changeOrderDeliveryFee(last_delivery_fee);
		}
		
		// 运费变动重新计算订单价格
		function changeOrderDeliveryFee(last_delivery_fee){
			// 如果是免运费，隐藏运行货到支付选项
			
			// 上一次算出的运费
			var order_delivery_fee = parseFloat($("#order_delivery_fee").val());
			// 界面显示本次计算运费
			$("#p_delivery_fee").text(numberRand2(last_delivery_fee));
			// 隐藏域记录本次运费
			$("#order_delivery_fee").val(last_delivery_fee);
			// 应付 = 应付 -原来运费 + 新计算的运费
			var real_pay_money = parseFloat($("#real_pay_money").text().replace("￥",""));
			$("#real_pay_money").text("￥"+numberRand2(real_pay_money - parseFloat(order_delivery_fee) + parseFloat(last_delivery_fee)));
		}
		
		// 判断地址是否为免费地址
		function isFee(address_id , delivery_address_ids){
			// alert("选择地址："+address_id + "地址列表："+delivery_address_ids);
			if(!delivery_address_ids || delivery_address_ids == null || delivery_address_ids == ''){
				// alert("地址列表为空");
				return false;
			}
			var addressIdsArr = delivery_address_ids.split(",");
			// alert("地址列表数组:"+addressIdsArr);
			var flag = false;
			for(var i = 0 ;i < addressIdsArr.length; i++){
				if(address_id == addressIdsArr[i]){
					flag = true;
					break;
				}
			}
			// alert("判断结果："+flag);
			return flag;
		}
		// 调用计算运费
		cacluateDeliveryFee();
	
	});

jQuery('#duice').click(function() {
	jQuery('.wthpop').show();
})

jQuery('.wthpop>p>span').click(function() {
	jQuery('.wthpop').hide()
})

//tab function
function TabSelect(tab, con, addClass, obj) {
	var jQuery_self = obj;
	var jQuery_nav = jQuery(tab);

	jQuery_nav.removeClass(addClass), jQuery_self.addClass(addClass);

	var jQuery_index = jQuery_nav.index(jQuery_self);
	var jQuery_con = jQuery(con);
	jQuery_con.hide(), jQuery_con.eq(jQuery_index).show();
}

/**
 * 校验地址表单
 */
function doCheckAddress() {
	var provinceCode = $("#provinceCode").val();
	var provinceName = $("#provinceName").val();
	var cityCode = $("#cityCode").val();
	var cityName = $("#cityName").val();
	var areaCode = $("#areaCode").val();
	var areaName = $("#areaName").val();
	var streetCode = $("#streetCode").val();
	var streetName = $("#streetName").val();
	if (!provinceCode || !cityCode || !areaCode || !streetCode || !provinceName || !cityName || !areaName
			|| !streetName) {
		layer.msg('请重新选择所在地区（省/市/区/街道）', {
			icon : 2,
			time : 2000
		});
		return false;
	}
	if (provinceCode == '省' || cityCode == '市' || areaCode == '区' || streetCode == '街道') {
		layer.msg('请重新选择所在地区（省/市/区/街道）', {
			icon : 2,
			time : 2000
		});
		return false;
	}
	if (!$("#address").val()) {
		layer.msg('请输入详细地址', {
			icon : 2,
			time : 2000
		});
		return false;
	}
	if (address.length > 200) {
		layer.msg('地址不能超过200个字符', {
			icon : 2,
			time : 2000
		});
		return false;
	}
	var receiverName = $("#receiver_name").val();
	if (!receiverName) {
		layer.msg('请输入收货人', {
			icon : 2,
			time : 2000
		});
		return false;
	}
	if (receiverName.length > 20) {
		layer.msg('收货人姓名不能超过20个字符', {
			icon : 2,
			time : 2000
		});
		return false;
	}
	var mobile = $("#mobile").val();
	if (!mobile) {
		layer.msg('请输入手机号码', {
			icon : 2,
			time : 2000
		});
		return false;
	}
	if (!(/^1\d{10}$/.test(mobile))) {
		layer.msg('请输入正确的联系方式', {
			icon : 2,
			time : 2000
		});
		return false;
	}
	return true;
}

/**
 * 定义下拉列表加载
 */
var selectpicker = function(config) {
	if (typeof config == 'object') {
		if (!config['id'] || !config['url']) {
			return false;
		}
		var defaults = {
			param : {},
			defaultValue : null,
			valueField : 'id',
			textField : 'text',
			defaultAll : false,
			async : true, // 默认异步加载
			loadSuccess : function(data) {
			} // 数据加载成功的回调事件
		};
		config = $.extend(defaults, config || {});
		var $select = $('#' + config.id);
		$.ajax({
			type : 'post',
			url : config.url,
			async : config.async,
			data : config.param,
			dataType : 'json',
			success : function(result) {
				$select.html('');
				if (config.defaultAll) {
					$select.append('<option value="" >请选择</option>');
				}
				var data = result.data || result.rows || result.list || result;
				$.each(data, function(index, row) {
					var value = row[config.valueField];
					var text = row[config.textField];
					if(config.defaultValue && value == config.defaultValue) {
						$select.append('<option value="' + value + '" selected="selected" >' + text + '</option>');
					} else {
						$select.append('<option value="' + value + '" >' + text + '</option>');
					}
				});
				//数据加载成功之后的回调事件
				config.loadSuccess(data); 
			}
		})
	}
};

/**
 * 打开地址编辑窗口
 */
function doEditAddress(addressId) {
	if (addressId) {
		$.ajax({
			type : "post",
			url : rootPath + '/pc/my/address/getAddressById',
			data : {
				addressId : addressId
			},
			async : false,
			datatype : "json",
			success : function(json) {
				if (json.code == '1' && json.data) {
					var address = json.data;
					$("#id").val(address.id);
					initAreaCombo(address.provinceCode, address.cityCode, address.areaCode, address.streetCode)
					$("#provinceCode").val(address.provinceCode);
					$("#provinceName").val(address.provinceName);
					$("#cityCode").val(address.cityCode);
					$("#cityName").val(address.cityName);
					$("#areaCode").val(address.areaCode);
					$("#areaName").val(address.areaName);
					$("#streetCode").val(address.streetCode);
					$("#streetName").val(address.streetName);
					$("#receiver_name").val(address.receiverName);
					$("#address").val(address.address);
					$("#mobile").val(address.mobile);
					$("#post_code").val(address.postCode);
					$("#isDefault").val(address.isDefault);
					$('#add_shr_info').show();
				} else {
					layer.msg(json.msg, {
						icon : 2,
						time : 2000
					});
				}
			},
			error : function() {
				layer.msg('获取地址信息错误', {
					icon : 2,
					time : 2000
				});
			}
		});
	} else {
		layer.msg('获取地址信息错误', {
			icon : 2,
			time : 1000
		});
	}
}

//保存或修改地址
function saveOrUpdateAddress(){
	//校验必填项
	var id = $("#id").val();
	var checkAddress = doCheckAddress();
	if (checkAddress) {
		var url = rootPath + "/deliveryAddress/saveOrUpdateDeliveryAddress";
		$.ajax({
			type: 'POST',
			url: url,
			async: true,
			data: {
				id : id,
				receiverName : $("#receiver_name").val(),
				mobile:$("#mobile").val(),
				provinceCode:$("#provinceCode").val(),
				provinceName:$("#provinceName").val(),
				cityCode:$("#cityCode").val(),
				cityName:$("#cityName").val(),
				areaCode:$("#areaCode").val(),
				areaName:$("#areaName").val(),
				streetCode:$("#streetCode").val(),
				streetName:$("#streetName").val(),
				address:$("#address").val(),
				postCode:$("#post_code").val(),
				isDefault:$("#isDefault").val()
			},
			dataType: 'json',
			success: function(json) {
				if(json.resultCode == '1'){
					if (!id) {
						var full_address = $("#provinceName").val()+$("#cityName").val()+$("#areaName").val()+$("#streetName").val()+$("#address").val();
						var address = $("<li><label name='delivery_address' delivery_address_id='"+json.deliveryAddressId+"'>"
								+"<h2 style='width:100px;'>"+$("#receiver_name").val()+"</h2>"
								+"	<h3 style='width:450px;'>"+full_address+"</h3>"
								+"	<h4 style='width:100px;'>"+$("#mobile").val()+"</h4>"
								+"	<h5 style='width:100px;'>" +
										"<a style='border:1px solid #ccc; color:#ccc;width:85px;text-align:center;' href='javascript:void(0)' onclick='setDefault("+json.deliveryAddressId+")'>设为默认地址</a>" +
									"</h5>"
								+"	<h5>" +
										"<a href='javascript:void(0)' onclick='doEditAddress("+json.deliveryAddressId+")'>编辑</a>" +
									"</h5>"
								+"</label>"
								+"</li>");
						var address_lis =  $("#delivery_address_div").find("li");
						// 添加到地址第一条
						if(address_lis && address_lis.length > 0){
							$("#delivery_address_div").prepend(address);
						}else{
							$("#delivery_address_div").append(address);
						}
						// 新增地址默认选择，其它地址取消选择
						$("#delivery_address_div").find("label").removeClass("checked");
						address.find("label").addClass("checked");

						layer.msg('添加收货地址成功',{time:500});
						// 重新绑定事件

						// 收货地址列表选择、操作默认
						address.find("label").click(function(){
							if($(this).hasClass('checked')){
								$(this).addClass('checked');$(this).parent().find('input').attr('checked','checked');
							}else{
								$(this).addClass('checked');
								$(this).parent().siblings().find('label').removeClass('checked');
								$("#delivery_to_address").html("寄送至："+$(this).closest("li").find("h3").text()+"<span></span>收货人："+$(this).closest("li").find("h2").text()+"&nbsp;"+$(this).closest("li").find("h4").text());
							}
						});
						$('#add_shr_info').toggle();
					} else {
						layer.msg('修改收货地址成功',{time:500});
						$("label[name='delivery_address']").each(function(){
							$(this).removeClass("current");
							var thisId = $(this).attr("delivery_address_id");
							if (json.deliveryAddressId == thisId) {
								var full_address = $("#provinceName").val()+$("#cityName").val()+$("#areaName").val()+$("#streetName").val()+$("#address").val();
								$(this).addClass("current")
								$(this).find("h2").text($("#receiver_name").val());
								$(this).find("h3").text(full_address);
								$(this).find("h4").text($("#mobile").val());
							}
						});
						$('#add_shr_info').toggle();
						
						/**
						// 将修改的收货地址id 从免费列表中剔除
						var normal_delivery_address_ids = $("#normal_delivery_address_ids").val();
						var express_delivery_address_ids = $("#express_delivery_address_ids").val();
						
						var normal_address_arr = [];
						var addressIdsArr = normal_delivery_address_ids.split(",");
						for(var i = 0 ;i < addressIdsArr.length; i++){
							if(id != addressIdsArr[i]){
								normal_address_arr.push(addressIdsArr[i]);
							}
						}
						$("#normal_delivery_address_ids").val(normal_address_arr.join(','));
						var express_address_arr = [];
						addressIdsArr = express_delivery_address_ids.split(",");
						for(var i = 0 ;i < addressIdsArr.length; i++){
							if(id != addressIdsArr[i]){
								express_address_arr.push(addressIdsArr[i]);
							}
						}
						$("#express_delivery_address_ids").val(express_address_arr.join(','));
						*/
						
						window.location.reload();
					}
				}else{
					layer.msg('添加收货地址失败',{time:1000});
				}
			},
			error: function(){
				layer.msg('添加收货地址失败',{time:1000});
			}
		});
	}
}

/**
 * 删除地址
 */
function doDelAddress(addressId) {
	if (addressId) {
		layer.confirm("确定要删除该地址？", {
			title: '删除',
			btn: ['确定','取消'], //按钮
			skin: 'del-class' //样式类名
		}, function(index){
			$.ajax({
				type : "post",
				url : rootPath + '/pc/my/address/doDelAddress',
				data : {
					addressId : addressId
				},
				async : false,
				datatype : "json",
				success : function(json) {
					if (json.code == '1') {
						layer.msg(json.msg, function() {
							window.location.reload();
						},{
							time: 500
						});
					} else {
						layer.msg(json.msg, {
							time : 500
						});
					}
				},
				error : function() {
					layer.msg('设置默认地址失败', {
						time : 1000
					});
				}
			});
			layer.close(index);
		});
	} else {
		layer.msg('获取地址信息错误', {
			icon : 2,
			time : 1000
		});
	}
}

/**
 * 设置默认地址
 */
function setDefault(addressId) {
	if (addressId) {
		$.ajax({
			type : "post",
			url : rootPath + '/pc/my/address/doSetDefault',
			data : {
				addressId : addressId
			},
			async : false,
			datatype : "json",
			success : function(json) {
				if (json.code == '1') {
					layer.msg(json.msg, function() {
						window.location.reload();
					},{
						time: 500
					});
				} else {
					layer.msg(json.msg, {
						icon : 2,
						time : 500
					});
				}
			},
			error : function() {
				layer.msg('设置默认地址失败', {
					icon : 2,
					time : 500
				});
			}
		});
	} else {
		layer.msg('请先选择地址', {
			time : 500
		});
	}
}

/**
 * 初始化省市区街道下拉列表
 */
function initAreaCombo(provinceId, cityId, areaId, streetId) {
	if(provinceId && cityId && areaId && streetId) {
		//编辑，初始化-省市区街道
		selectpicker({
			id : 'provinceCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				rootDepth : 1
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultAll : false,
			defaultValue : provinceId
		});
		//市
		selectpicker({
			id : 'cityCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				parentId : provinceId
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultAll : false,
			defaultValue : cityId
		});
		//区
		selectpicker({
			id : 'areaCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				parentId : cityId
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultAll : false,
			defaultValue : areaId
		});
		//街道
		selectpicker({
			id : 'streetCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				parentId : areaId
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultAll : false,
			defaultValue : streetId
		});
	} else {
		//新增，只需要初始化-省
		selectpicker({
			id : 'provinceCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				rootDepth : '1'
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultAll : false,
			defaultValue : provinceId
		});
	}
	
	// 省改变，加载市
	$("#provinceCode").change(function() {
		// 获取省ID值
		var provinceValue = $("#provinceCode").val();
		// 清空市下拉框
		$("#cityCode").empty();
		// 清空区下拉框
		$("#areaCode").empty();
		// 清空街道下拉框
		$("#streetCode").empty();
		if (!provinceValue)
			return;
		// 加载市数据
		selectpicker({
			id : 'cityCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				parentId : provinceValue
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultValue : cityId,
			defaultAll : true
		});
	});

	// 市改变，加载区
	$("#cityCode").change(function() {
		// 获取市ID值
		var cityCode = $("#cityCode").val();
		// 清空区下拉框
		$("#areaCode").empty();
		// 清空街道下拉框
		$("#streetCode").empty();
		if (!cityCode)
			return;
		// 加载市数据
		selectpicker({
			id : 'areaCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				parentId : cityCode
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultValue : areaId,
			defaultAll : true
		});
	});
	// 区改变，加载街道
	$("#areaCode").change(function() {
		// 获取市ID值
		var areaCode = $("#areaCode").val();
		// 清空区下拉框
		$("#streetCode").empty();
		if (!areaCode)
			return;
		// 加载市数据
		selectpicker({
			id : 'streetCode', // select的id
			url : rootPath + "/area/getAreaList", // 请求数据的远程地址
			param : {
				parentId : areaCode
			}, // 过滤参数
			valueField : 'id',
			textField : 'areaName',
			defaultValue : streetId,
			defaultAll : true
		});
	});

	/**
	 * 省份
	 */
	$("#provinceCode").change(function() {
		$("#provinceName").val($("#provinceCode option:selected").text());
	});
	/**
	 * 城市
	 */
	$("#cityCode").change(function() {
		$("#cityName").val($("#cityCode option:selected").text());
	});
	/**
	 * 街道
	 */
	$("#areaCode").change(function() {
		$("#areaName").val($("#areaCode option:selected").text());
	});
	/**
	 * 街道
	 */
	$("#streetCode").change(function() {
		$("#streetName").val($("#streetCode option:selected").text());
	});
}

/**
 * 保留两位小数
 * @param num
 * @returns {Number}
 */
function numberRand2(num){
	if(!num || num == null || num == undefined){
		return 0.00;
	}else{
		var num_value = parseFloat(num);
		return (Math.round(num_value * 100) / 100).toFixed(2);
	}
}

/**
 * 校验地址表单
 */
function doCheckInvoice() {
	var companyName = $("#companyName").val();
	var taxNo = $("#taxNo").val();
	if (!companyName) {
		layer.msg('单位名称必须填写', {
			icon : 2,
			time : 1000
		});
		return false;
	}
	if (!taxNo) {
		layer.msg('纳税人识别码必须填写', {
			icon : 2,
			time : 1000
		});
		return false;
	}
	console.log("check");
	return true;
}